/* --------------------------------------------------------------------
Copyright (C) 2009 DigiPen Institute of Technology.
Reproduction or disclosure of this file or its contents without the prior
written consent of DigiPen Institute of Technology is prohibited.

File Name: README.txt
Purpose: Explains the user interface for Project, Parts I & II & III
Language: C++ / Borland C++ Builder (Framework and standalone app)
          C++ / Visual Studio 2008 (dll containing user functions)
Platform: Microsoft Windows XP or later
Project: MAT 300 Programming Project
Author: Aaron Arlet, aarlet2, 
Creation date: 11/3/2009
---------------------------------------------------------------------*/

MAT 300 Programming Project, Part III

Interface description:

- Menus:
  File / Clear (Shortcut: Delete key)
        Removes all points
  File / Exit
        Exits the application
  Algorithm / NLI-Form (Shortcut: Ctrl-1)
  Algorithm / BB-Form  (Shortcut: Ctrl-2)
  Algorithm / Midpoint-Subdivision (Shortcut: Ctrl-3)
        These three menus select the interpolation method used to generate a 
        Bezier curve.  Note that the active method of interpolation appears 
        in the status bar at the bottom of the screen.
  Algorithm / Polynomial (Shortcut: Ctrl-4)
        This menu activiates polynomial interpolation, which will go through
        all the input points.
  Algorithm / Cubic Spline (Shortcut: Ctrl-5)
        This menu activates cubic spline interpolation, which will go through
        all the input points, while not going as far away from the input points
        as polynomial interpolation.
  Debug / Toggle output (Shortcut: Ctrl-T)
        Toggles display of the debug output window.        

- Control Panels:
  Depending on which interpolation method is active, different controls will
  be available on the left side of the screen.  All available controls are:
  T values slider (1 - 100)
        Sets the number of points that actually calculated on the curve.
        NLI-Form, BB-Form only, Polynomial, and Cubic Spline only.
  Displayed shell (0 - 1)
        Sets the particular t-value in which to display the intermediate
        shell calculations.  NLI-Form only.
  Approximation Levels (1 - 10)
        Sets the levels of approximation (recursion) used in the Midpoint-
        subdivision method.  Midpoint-subdivision only.
  Display Shells check box (on/off)
        Toggles display of the selected shell.  NLI-Form only.
  Disply Polyline check box (on/off)
        Toggles display of the control polyline.  Available in all 
        interpolation methods.

- Status bar:
  Displays the current method of interpolation and the number of input points.

- Mouse:
  Left-click to create input points.  A maximum of 65 input points will be
  created.  Once the maximum has been reached, the first input point will be
  removed and a new point will be created at the cursor's location.

  Left-click on any input point (denoted by a black circle) to move that input
  point.

  Control-left-click on any input point to delete it.

Environment:  This project was created and compiled using Borland C++Builder to
run under MS Windows XP.  It has also been tested successfully (courtesy
Professor Mead) under Linux, openSUSE 10.2, and Debian 5.0, after installing
WINE.

